package liumeiya.rbac.view;

import java.util.Scanner;

public class MainView {
    /**
     * 输出主界面菜单
     * 使用文本块（text blocks）语句实现多行字符串，避免手动换行和转义
     */
    public static void printMenu(){
        String menu = """
               ------------------
                     RBAC系统
               ------------------
               |   0...退出系统   |
               |   1...部门管理   |
               |   2...角色管理   |
               |   3...用户管理   |
               -------------------
               请输入选项：""";
        System.out.print(menu);
    }

    //定义静态变量 input， 用于接收用户输入
    public static Scanner input;

    //静态代码块， 在类加载时初始化 Scanner 对象
    static {
        input = new Scanner(System.in);
    }

    public static void show(){
        String menuChoice; // 用于存储用户输入的选项
        do {
            printMenu(); // 输出菜单
            menuChoice = input.nextLine(); // 读取用户输入

            switch (menuChoice) {
                case "0":
                    System.out.println("成功退出系统，欢迎再次使用！");
                    break;
                case "1":
                    DeptView.show();
                    break;
                case "2":
                    RoleView.show();
                    break;
                case "3":
                    UserView.show();
                    break;
                default:
                    System.out.println("输入非法，请输入正确的菜单编号！");
            }
        } while (!"0".equals((menuChoice))); // 当用户输入 “0” 时退出循环
        input.close(); // 关闭 Scanner对象， 释放资源
    }
}
